In computer systems, several different components may require access to a bus or other communication device. For example, in a multi-processor environment, different processors require access to the system bus. Because several of these processors may request access to the bus at approximately the same time, some mechanism for deciding which processor gains access to the bus at a particular time must be employed. To decide which processor gains access to the bus, a bus arbitration unit is typically utilized.
Typically, when a processor has a transaction requiring access to the system bus, the processor sends a bus request ("BR") signal over an associated BR line to the bus arbitration unit. Other processors may send a BR signal to the bus arbitration unit and the bus may currently be occupied with another transaction. The bus arbitration unit uses an arbitration scheme to determine which processor's request for access to the bus will be granted. A bus grant ("BG") signal is sent to the processor being granted access by the bus arbitration unit.
In conventional systems, the bus arbitration unit typically chooses which processor gains access to the bus based on a priority assigned to each of the processors. However, such conventional arbitration schemes are inefficient. Although each processor has a priority associated with it, different transactions may require access to the bus more urgently. These transactions may be performed both by the processor having the highest priority and other processors. Where a processor having low priority performs such a critical transaction, the processor will not be granted access to the bus for the transaction in an expedited manner. Thus, a processor having a high assigned priority that is not executing a critical transaction could consume the bus resources because of the priority scheme.
Accordingly, what is needed is a system and method for providing arbitration which is can dynamically prioritize bus requests. It would also be beneficial if the system was programmable for use in different environments. The present invention addresses such a need.